import { defineConfig } from 'vite'
// 引入基础配置
import viteBaseConfig from './vite.base.config'
// 引入开发环境配置
import viteDevConfig from './vite.dev.config'
// 引入生产环境配置
import viteProdConfig from './vite.prod.config'

// 策略模式(对象枚举)
const envResolver = {
  'build': () => {
    console.log('打包')
    // return Object.assign({}, viteBaseConfig, viteProdConfig)
    // 两种方式，都是用于合并对象
    return { ...viteBaseConfig, ...viteProdConfig }
  },
  'serve': () => {
    console.log('生产')
    return Object.assign({}, viteBaseConfig, viteDevConfig)
  }
}

// defineConfig加上可以有语法提示
export default defineConfig(({ command }) => {
  console.log(command)
  // 环境判断
  return envResolver[command]()
})